package com.shengwei.truck.driver.vm;
import androidx.lifecycle.MutableLiveData;

import com.shengwei.truck.driver.bean.Result;
import com.shengwei.truck.driver.bean.task.JsonOrderListData;
import com.shengwei.truck.driver.bean.task.JsonTaskListData;
import com.shengwei.truck.driver.bean.task.OrderItem;
import com.shengwei.truck.driver.bean.task.TaskItem;
import com.shengwei.truck.driver.model.DataSource;
import com.shengwei.truck.driver.model.Repository;

/**
 * 首页底部 任务TAB页"的VM层
 */
public class TaskViewModel extends BaseViewModel {
    private Repository mRepository; //M层引用
    MutableLiveData<Result<JsonTaskListData>> jsonTaskListLiveData = new MutableLiveData<>(); //任务列表
    MutableLiveData<Result<JsonOrderListData<OrderItem>>> jsonPlanOrderListLiveData = new MutableLiveData<>();//新订单列表
    MutableLiveData<Result<TaskItem>> curTaskLiveData = new MutableLiveData<>(); //当前正在进行的任务
    MutableLiveData<Result<String>> shareForwardVerify = new MutableLiveData<>(); //当前正在进行的任务

    public MutableLiveData<Result<String>> getShareForwardVerify() {
        return shareForwardVerify;
    }

    public MutableLiveData<Result<TaskItem>> getCurTaskLiveData() {
        return curTaskLiveData;
    }

    public MutableLiveData<Result<JsonTaskListData>> getTaskListLiveData() {
        return jsonTaskListLiveData;
    }
    public MutableLiveData<Result<JsonOrderListData<OrderItem>>> getOrderListLiveData() {
        return jsonPlanOrderListLiveData;
    }
    public TaskViewModel(Repository repository) {
        mRepository = repository;
    }

    public TaskViewModel() {
        mRepository = Repository.getInstance(DataSource.getSingleInstance());
    }

    /**
     * 获取任务列表
     * @param taskStatus： 任务列表状态
     * @param pageNum：   页码
     * @param pageSize：  每页显示条目数
     * @param isForward： 是否是转派列表： 1是已转派列表，否则是0
     * @return
     */
    public void getTaskList(String taskStatus,int pageNum,int pageSize,int isForward) {
            mRepository.getTaskList(taskStatus,pageNum,pageSize,isForward,jsonTaskListLiveData);
    }

    /**
     * 获取计划单列表
     * @param pageNum：   页码
     * @param pageSize：  每页显示条目数
     * @return
     */
    public void getPlanOrders(int pageNum,int pageSize) {
        mRepository.getPlanOrders(pageNum,pageSize,jsonPlanOrderListLiveData);
        return;
    }

    /**
     * 获取当前任务
     */
    public void getCurTask() {
        mRepository.getCurTask(curTaskLiveData);
        return;
    }


    /**
     * 同意还是拒绝 别人的转派和分享
     * @param taskId: 别人转派（分享）过来的任务ID
     * @param isAgree: 1 同意；0拒绝
     * @param type： 1转派，2共享
     */
    public void shareForwardVerify(String taskId,int isAgree,int type,String mark) {
        mRepository.shareForwardVerify(taskId,isAgree,type,mark, shareForwardVerify);
        return;
    }
}